﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 垃圾回收的示例
{
    // 定义一个用于跟踪的"可回收对象"
    // 包含ID用于区分不同实例，方便观察回收情况
    public class TrackableObject
    {
        // 对象唯一标识
        public int Id { get; }

        // 构造函数：创建对象时记录信息
        public TrackableObject(int id)
        {
            Id = id;
            Console.WriteLine($"[对象创建] 实例 {Id} 被创建（内存已分配）");
        }

        // 析构函数（Finalizer）：GC回收对象时自动调用
        // 作用：释放非托管资源（教学中简化为打印回收信息）
        ~TrackableObject()
        {
            Console.WriteLine($"[GC回收] 实例 {Id} 被垃圾回收器回收（内存已释放）");
        }
    }

}
